# 进程创建
from multiprocessing import Process
from time import sleep
import os

'''
 多进程是否可以共享全局变量
 
 多进程对于全局变量访问，在每一个全局变量里面都放一个m变量
 保证每个进程访问变量互不干扰
'''

m = 1
list1=[]
def task1(s, s1, a=123):
    print(s1, a)
    while True:
        global m
        m += 1
        sleep(s)
        list1.append(str(m)+'task1')
        print("这是任务1", os.getpid(), os.getppid(), m, list1)


def task2(s):
    while True:
        sleep(s)
        global m
        m += 1
        list1.append(str(m) + 'task2')
        print("这是任务2",  os.getpid(), os.getppid(), m, list1)


number = 0
if __name__ == '__main__':
    p = Process(target=task1, name="任务1", args=(1, 2222), kwargs={"a": 3})
    p.start()
    print(p.name)
    p1 = Process(target=task2, name="任务2", args=(2,))
    p1.start()
    print(p1.name)

    while True:
        number += 1
        sleep(0.1)
        # print('-----------------------m:', m)
        if number == 100:
            p.terminate()
            p1.terminate()
            break
